package com.bjpowernode.money.service;

import com.bjpowernode.money.model.RechargeRecord;

import java.util.List;

/**
 * @author ZHAOZHENYU
 * @since 2022/10/27
 */
public interface RechargeRecordService {
    /**
     * 1、充值：生成订单
     * @param rechargeRecord
     * @return
     */
    int recharge(RechargeRecord rechargeRecord);

    /**
     * 2、充值：充值失败，更新充值状态为 2
     * @param out_trade_no
     * @return
     */
    int rechargeFail(String out_trade_no);

    /**
     * 3、充值：充值成功,更新状态为 1；用户余额增加
     * @param out_trade_no
     * @param total_amount
     * @param userId
     * @return
     */
    int rechargeSuccess(String out_trade_no, Double total_amount, Integer userId);

    /**
     * 4、充值：定时器：查出所有状态0
     * @return
     */
    List<RechargeRecord> queryByStatus();

    /**
     * 5、退款/关闭交易：根据id查充值记录
     * @param id
     * @return
     */
    RechargeRecord queryById(Integer id);

}
